#include<func.h>
//通过sigprocmask阻塞2号信号，睡眠5秒后，解除阻塞，2号信号得到执行；在睡眠后，解除阻塞之前，通过sigpending检测是否有信号挂起
int main()
{
    sigset_t mask;
    sigemptyset(&mask);//清空mask
    sigaddset(&mask,SIGINT);//将2号信号填入mask
    int ret=sigprocmask(SIG_BLOCK,&mask,NULL);//阻塞2号信号
    ERROR_CHECK(ret,-1,"sigprocmask");
    printf("关键代码开始\n");
    sleep(5);
    sigset_t pending;//把内核中pending信号集合取出来
    sigpending(&pending);
    if(sigismember(&pending,SIGINT))//通过sigpending检测是否有2号信号挂起
    {
        printf("SIGINT is pending\n");
    }
    else{
        printf("SIGINT is not pending\n");
    }
    printf("关键代码结束\n");
    ret=sigprocmask(SIG_UNBLOCK,&mask,NULL);//接触对2号信号的阻塞
    ERROR_CHECK(ret,-1,"sigprocmask");
    printf("you can see me\n");
    return 0;
}